package com.tcc.fastline.DAO.mock;

import java.util.ArrayList;
import java.util.List;

import android.util.Log;

import com.tcc.fastline.DAO.interfaces.IIntegranteFilaDAO;
import com.tcc.fastline.Domain.IntegranteFila;

public class IntegranteFilaMockDAO implements IIntegranteFilaDAO {

	@Override
	public List<IntegranteFila> ObterIntegrantesFila(Integer codigoFila) {
		List<IntegranteFila> lista = new ArrayList<IntegranteFila>();

		for (IntegranteFila integranteFila : BDmock.IntegrantesFila) {
			if (integranteFila.getFila().getCodigo().equals(codigoFila)) {
				lista.add(integranteFila);
			}
		}

		return lista;
	}

	@Override
	public IntegranteFila ObterIntegrante(Integer codigoFila,
			Integer codigoUsuario) {

		Log.e("fila", codigoFila.toString());
		Log.e("usuario", codigoUsuario.toString());
		
		for (IntegranteFila integranteFila : BDmock.IntegrantesFila) {
			if (integranteFila.getFila().getCodigo().equals(codigoFila) &&
					integranteFila.getUsuario().getCodigo().equals(codigoUsuario)) {
				Log.e("Integrante achou", "achou");
				return integranteFila;
			}
		}

		Log.e("Integrante vazio", "vazio");
		return null;
	}

	@Override
	public void RemoverIntegranteFila(Integer codigoFila, Integer codigoUsuario) {
		try {
			IntegranteFila integrante = this.ObterIntegrante(codigoFila, codigoUsuario);
			
			BDmock.IntegrantesFila.remove(integrante);			
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	@Override
	public void ChamarIntegranteFila(IntegranteFila integrante) throws Exception {
		try {
			Log.e("fila", integrante.getFila().getCodigo().toString());
			Log.e("usuario", integrante.getUsuario().getCodigo().toString());
			
			for (IntegranteFila integranteFila : BDmock.IntegrantesFila) {
				if (integranteFila.getFila().getCodigo().equals(integrante.getFila().getCodigo()) &&
						integranteFila.getUsuario().getCodigo().equals( integrante.getUsuario().getCodigo())) {
					Log.e("Integrante achou", "achou");
					
					BDmock.IntegrantesFila.remove(integranteFila);
					
				}
			}

			Log.e("Integrante vazio", "vazio");
		} catch (Exception e) {
			throw e;
		}
	}

}
